on:
  - pull_request
  - push

name: ci-sqlite

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  tests:
    name: PHP ${{ matrix.php }}-sqlite

    env:
      EXTENSIONS: pdo, pdo_sqlite, sqlite3
      XDEBUG_MODE: coverage, develop

    runs-on: ubuntu-latest

    strategy:
        matrix:
            os:
              - ubuntu-latest

            php:
              - 7.4
              - 8.0
              - 8.1
              - 8.2
              - 8.3

    steps:
      - name: Checkout.
        uses: actions/checkout@v4

      - name: Install PHP with extensions.
        uses: shivammathur/setup-php@v2
        with:
          coverage: xdebug
          extensions: ${{ env.EXTENSIONS }}
          ini-values: date.timezone='UTC'
          php-version: ${{ matrix.php }}
          tools: composer:v2, pecl

      - name: Update composer.
        run: composer self-update

      - name: Install dependencies with composer.
        run: composer update --prefer-dist --no-interaction --no-progress --optimize-autoloader --ansi

      - name: Run SQLite tests with PHPUnit and generate coverage.
        if: matrix.php == '7.4'
        run: vendor/bin/phpunit --group sqlite --coverage-clover=coverage.xml --colors=always

      - name: Run SQLite tests with PHPUnit.
        if: matrix.php > '7.4'
        run: vendor/bin/phpunit --group sqlite --colors=always

      - name: Upload coverage to Codecov.
        if: matrix.php == '7.4'
        uses: codecov/codecov-action@v3
        with:
          file: ./coverage.xml
